<s> """<STR_LIT>""" <EOL> import array <EOL> CRC_TABLE = ( <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <NUM_LIT> L , <EOL> ) <EOL> CRC_INIT = <NUM_LIT:0> <EOL> _MASK = <NUM_LIT> L <EOL> def crc_update ( crc , data ) : <EOL> """<STR_LIT>""" <EOL> if type ( data ) != array . array or data . itemsize != <NUM_LIT:1> : <EOL> buf = array . array ( "<STR_LIT:B>" , data ) <EOL> else : <EOL> buf = data <EOL> crc = crc ^ _MASK <EOL> for b in buf : <EOL> table_index = ( crc ^ b ) & <NUM_LIT> <EOL> crc = ( CRC_TABLE [ table_index ] ^ ( crc >> <NUM_LIT:8> ) ) & _MASK <EOL> return crc ^ _MASK <EOL> def crc_finalize ( crc ) : <EOL> """<STR_LIT>""" <EOL> return crc & _MASK <EOL> def crc ( data ) : <EOL> """<STR_LIT>""" <EOL> return crc_finalize ( crc_update ( CRC_INIT , data ) ) </s>
