code: def read(self, page):
          
          log.debug("read pages {0} to {1}".format(page, page+3))
  
          data = self.transceive("\x30"+chr(page % 256), timeout=0.005)
  
          if len(data) == 1 and data[0] & 0xFA == 0x00:
              log.debug("received nak response")
              self.target.sel_req = self.target.sdd_res[:]
              self._target = self.clf.sense(self.target)
              raise Type2TagCommandError(
                  INVALID_PAGE_ERROR if self.target else nfc.tag.RECEIVE_ERROR)
  
          if len(data) != 16:
              log.debug("invalid response " + hexlify(data))
              raise Type2TagCommandError(INVALID_RESPONSE_ERROR)
  
          return data
docs: Send a READ command to retrieve data from the tag.
  
          The *page* argument specifies the offset in multiples of 4
          bytes (i.e. page number 1 will return bytes 4 to 19). The data
          returned is a byte array of length 16 or None if the block is
          outside the readable memory range.
  
          Command execution errors raise :exc:`Type2TagCommandError`.