code: def read_string(self, advance=True):
          
          target = self._blob.find(b'\0', self.pos)
          assert target >= self._pos
          data = self._blob[self._pos:target]
          if advance:
              self._pos = target + 1
          return data.decode('ascii')
docs: Read a string terminated by null byte '\0'. The returned string
          object is ASCII decoded, and will not include the terminating null byte.