@classmethod
def raw_parse(cls, s):
    'Returns a HDPublicKey from a stream'
    version = s.read(4)
    if (version in (TESTNET_XPUB, TESTNET_YPUB, TESTNET_ZPUB)):
        testnet = True
    elif (version in (MAINNET_XPUB, MAINNET_YPUB, MAINNET_ZPUB)):
        testnet = False
    else:
        raise ValueError('not an xpub, ypub or zpub: {} {}'.format(s, version))
    depth = byte_to_int(s.read(1))
    parent_fingerprint = s.read(4)
    child_number = big_endian_to_int(s.read(4))
    chain_code = s.read(32)
    point = S256Point.parse(s.read(33))
    return cls(point=point, chain_code=chain_code, depth=depth, parent_fingerprint=parent_fingerprint, child_number=child_number, testnet=testnet)
Returns a HDPublicKey from a stream
@classmethod
def raw_parse(cls, s):
    
    version = s.read(4)
    if (version in (TESTNET_XPUB, TESTNET_YPUB, TESTNET_ZPUB)):
        testnet = True
    elif (version in (MAINNET_XPUB, MAINNET_YPUB, MAINNET_ZPUB)):
        testnet = False
    else:
        raise ValueError('not an xpub, ypub or zpub: {} {}'.format(s, version))
    depth = byte_to_int(s.read(1))
    parent_fingerprint = s.read(4)
    child_number = big_endian_to_int(s.read(4))
    chain_code = s.read(32)
    point = S256Point.parse(s.read(33))
    return cls(point=point, chain_code=chain_code, depth=depth, parent_fingerprint=parent_fingerprint, child_number=child_number, testnet=testnet)