code: def gen_table(self):
          
          table_length = 1 << self.TableIdxWidth
          tbl = [0] * table_length
          for i in range(table_length):
              register = i
              if self.ReflectIn:
                  register = self.reflect(register, self.TableIdxWidth)
              register = register << (self.Width - self.TableIdxWidth + self.CrcShift)
              for j in range(self.TableIdxWidth):
                  if register & (self.MSB_Mask << self.CrcShift) != 0:
                      register = (register << 1) ^ (self.Poly << self.CrcShift)
                  else:
                      register = (register << 1)
              if self.ReflectIn:
                  register = self.reflect(register >> self.CrcShift, self.Width) << self.CrcShift
              tbl[i] = register & (self.Mask << self.CrcShift)
          return tbl
docs: This function generates the CRC table used for the table_driven CRC
          algorithm.  The Python version cannot handle tables of an index width
          other than 8.  See the generated C code for tables with different sizes
          instead.