code: def ReadVarInt(self, max=sys.maxsize):
          
          fb = self.ReadByte()
          if fb is 0:
              return fb
          value = 0
          if hex(fb) == '0xfd':
              value = self.ReadUInt16()
          elif hex(fb) == '0xfe':
              value = self.ReadUInt32()
          elif hex(fb) == '0xff':
              value = self.ReadUInt64()
          else:
              value = fb
  
          if value > max:
              raise Exception("Invalid format")
  
          return int(value)
docs: Read a variable length integer from the stream.
          The NEO network protocol supports encoded storage for space saving. See: http://docs.neo.org/en-us/node/network-protocol.html#convention
  
          Args:
              max (int): (Optional) maximum number of bytes to read.
  
          Returns:
              int: