def loads(s, encoding=None, cls=None, object_hook=None, parse_float=None,<EOL>parse_int=None, parse_constant=None, object_pairs_hook=None):
assert cls is None, '<STR_LIT>'<EOL>if sys.version_info[<NUM_LIT:0>] < <NUM_LIT:3>:<EOL><INDENT>decodable_type = type('<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>decodable_type = type(b'<STR_LIT>')<EOL><DEDENT>if isinstance(s, decodable_type):<EOL><INDENT>encoding = encoding or '<STR_LIT:utf-8>'<EOL>s = s.decode(encoding)<EOL><DEDENT>if not s:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>parser = Parser(s, '<STR_LIT>')<EOL>ast, err, newpos = parser.parse()<EOL>if err:<EOL><INDENT>raise ValueError(err)<EOL><DEDENT>def _fp_constant_parser(s):<EOL><INDENT>return float(s.replace('<STR_LIT>', '<STR_LIT>').replace('<STR_LIT>', '<STR_LIT>'))<EOL><DEDENT>if object_pairs_hook:<EOL><INDENT>dictify = object_pairs_hook<EOL><DEDENT>elif object_hook:<EOL><INDENT>dictify = lambda pairs: object_hook(dict(pairs))<EOL><DEDENT>else:<EOL><INDENT>dictify = dict<EOL><DEDENT>parse_float = parse_float or float<EOL>parse_int = parse_int or int<EOL>parse_constant = parse_constant or _fp_constant_parser<EOL>return _walk_ast(ast, dictify, parse_float, parse_int, parse_constant)<EOL>
Deserialize ``s`` (a ``str`` or ``unicode`` instance containing a
    JSON5 document) to a Python object.