code: def copy_raw_block(self):
          '''
          Copies the block as it was originally specified by start and end into a new table.
  
          Returns:
              A copy of the block with no block transformations.
          '''
          ctable = []
          r, c = 0, 0
          try:
              for row_index in range(self.start[0], self.end[0]):
                  r = row_index
                  row = []
                  ctable.append(row)
                  for column_index in range(self.start[1], self.end[1]):
                      c = column_index
                      row.append(self.table[row_index][column_index])
          except IndexError:
              raise InvalidBlockError('Missing table element at [%d, %d]' % (r, c))
          return ctablf copy_raw_block(self):
          '''
          Copies the block as it was originally specified by start and end into a new table.
  
          Returns:
              A copy of the block with no block transformations.
          '''
          ctable = []
          r, c = 0, 0
          try:
              for row_index in range(self.start[0], self.end[0]):
                  r = row_index
                  row = []
                  ctable.append(row)
                  for column_index in range(self.start[1], self.end[1]):
                      c = column_index
                      row.append(self.table[row_index][column_index])
          except IndexError:
              raise InvalidBlockError('Missing table element at [%d, %d]' % (r, c))
          return ctable
docs: Copies the block as it was originally specified by start and end into a new table.
  
          Returns:
              A copy of the block with no block transformations.